<?php
namespace app\common\job;

use think\queue\Job;

class Wechat {

    /**
     * fire方法是消息队列默认调用的方法
     * @param Job            $job      当前的任务对象
     * @param array|mixed    $data     发布任务时自定义的数据['promotionType'=>1]
     */
    public function fire(Job $job,$data){
        $date = date('Y-m-d H:i:s');
        $fun = $data['fun']; //发送模板消息方法
        $isJobDone = $this->$fun($data);
        if ($isJobDone) { //执行成功
            $job->delete();
            print("[{$date}]任务[{$fun}]执行成功后删除\n");
        }else{
            if ($job->attempts() > 3) { //重试三次删除任务
                $job->delete();
                print("[{$date}]任务[{$fun}]重试3次后删除\n");
            }
        }
    }
    public function  failed(Job $job, $data){
        $job->delete();
    }
    /**
     * 派车提醒
     * @param $data
     * @return bool
     */
    private function tplSendCar($data){
        if(empty($data['openid'])) return false;
        $message = & load_wechat('Message',config('wechat'));
        $tplData=[
            'touser'=>$data['openid'],
            'template_id'=>'il2lbK1fAPEocWjEpHfGu-C7utowlW0-z0NoeVkvikU',
            'url'=>$data['url'],
            'data'=>[
                'first'=>['value'=>'你好，你有一个新的派车提醒','color'=>'#CC0033'],
                'keyword1'=>['value'=>$data['car_sn'],'color'=>'#003366'], //车牌号码
                'keyword2'=>['value'=>$data['order_start_time'],'color'=>'#003366'], //派车时间
                'remark'=>['value'=>'详情请点击','color'=>'#333333'], //任务条数
            ]
        ];
        $message->sendTemplateMessage($tplData);
        return true;
    }
    /**
     * 司机出车
     * @param $openid 微信ID
     * @param $url 链接url
     * @param $driver 驾驶员姓名
     * @param $phone 驾驶员联系电话
     * @param $carSn 车牌号
     * @param $date 出发时间
     * @param $address 出发地址
     * @return mixed
     */
    private function tplOutCar($data){
        if(empty($data['openid'])) return false;
        $message = & load_wechat('Message',config('wechat'));
        $tplData=[
            'touser'=>$openid,
            'template_id'=>'ggTfztfbv4yahAGgmUv12ILKIAuG3U-3zv0pEcqnF3U',
            'url'=>$url,
            'data'=>[
                'first'=>['value'=>'你好，'.$data['driver'].'司机已出车','color'=>'#333333'],
                'keyword1'=>['value'=>$data['driver'],'color'=>'#333333'], //司机姓名
                'keyword2'=>['value'=>$data['phone'],'color'=>'#333333'], //手机号
                'keyword3'=>['value'=>$data['carSn'],'color'=>'#333333'], //车牌号
                'keyword4'=>['value'=>$data['date'],'color'=>'#333333'], //出发时间
                'keyword5'=>['value'=>$data['address'],'color'=>'#333333'], //出发地点
                'remark'=>['value'=>'详情请点击','color'=>'#333333'],
            ]
        ];
        $message->sendTemplateMessage($tplData);
        return true;
    }
    /**
     * 司机收车
     * @param $openid 微信ID
     * @param $url 链接url
     * @param $order_odd 订单号
     * @param $carSn 车牌号码
     * @param $date 收车时间
     * @return mixed
     */
    private function tplInCar($data){
        if(empty($data['openid'])) return false;
        $message = & load_wechat('Message',config('wechat'));
        $tplData=[
            'touser'=>$openid,
            'template_id'=>'PMAjBs0pI_3vnIVTaJbsiaoYl_0GhLeJ22ezLT4eHVg',
            'url'=>$url,
            'data'=>[
                'first'=>['value'=>'你好！贵公司车辆'.$data['carSn'].'已收车','color'=>'#333333'],
                'keyword1'=>['value'=>$data['order_odd'],'color'=>'#333333'], //订单号
                'keyword2'=>['value'=>$data['carSn'],'color'=>'#333333'], //车牌号
                'keyword3'=>['value'=>$data['date'],'color'=>'#333333'], //完成时间
                'remark'=>['value'=>'详情请点击','color'=>'#333333'],
            ]
        ];
        $message->sendTemplateMessage($tplData);
        return true;
    }
    /**
     * 司机结算
     * @param $openid 微信ID
     * @param $url 链接url
     * @param $order_odd 订单号
     * @param $strat 出发地
     * @param $end 目的地
     * @param $date 到达时间
     * @param $charge 结算费用
     * @return mixed
     */
    private function tplSum($data){
        if(empty($data['openid'])) return false;
        $message = & load_wechat('Message',config('wechat'));
        $tplData=[
            'touser'=>$openid,
            'template_id'=>'D24ONncoi9IZjYiaRd_g8DPKCzcys2jcBv51rOr-AaU',
            'url'=>$url,
            'data'=>[
                'first'=>['value'=>'你好，司机已收车','color'=>'#333333'],
                'keyword1'=>['value'=>$data['order_odd'],'color'=>'#333333'], //派车单号
                'keyword2'=>['value'=>$data['strat'].'到'.$end,'color'=>'#333333'], //运输路线
                'keyword3'=>['value'=>$data['date'],'color'=>'#333333'], //要求到达时间
                'keyword4'=>['value'=>$data['charge'],'color'=>'#333333'], //结算费用
                'remark'=>['value'=>'详情请点击','color'=>'#333333'],
            ]
        ];
        $message->sendTemplateMessage($tplData);
        return true;
    }
    /**
     * 车辆保养
     * @param $openid 微信ID
     * @param $url 链接url
     * @param $carSn 车牌号码
     * @param $driver 驾驶员姓名
     * @param $date 发起时间
     * @param $type 流程类别
     * @return mixed
     */
    private function tplInspect($data){
        if(empty($data['openid'])) return false;
        $message = & load_wechat('Message',config('wechat'));
        $tplData=[
            'touser'=>$openid,
            'template_id'=>'fbzoyRq7WPgvZzkW6MAkruF3cvvx4-3GSrsYvfJvSCY',
            'url'=>$url,
            'data'=>[
                'first'=>['value'=>'你好，您有新的车辆保养申请需审批','color'=>'#333333'],
                'keyword1'=>['value'=>$data['carSn'],'color'=>'#333333'], //编号
                'keyword2'=>['value'=>$data['driver'],'color'=>'#333333'], //发起人
                'keyword3'=>['value'=>$data['date'],'color'=>'#333333'], //发起时间
                'keyword4'=>['value'=>$data['type'],'color'=>'#333333'], //流程类别
                'remark'=>['value'=>'详情请点击','color'=>'#333333'],
            ]
        ];
        $message->sendTemplateMessage($tplData);
        return true;
    }
    /**
     * 司机请假
     * @param $openid 微信ID
     * @param $url 链接url
     * @param $id 编号
     * @param $driver 发起人
     * @param $date 发起时间
     * @param $type 流程类型
     * @return mixed
     */
    private function tplLeave($data){
        if(empty($data['openid'])) return false;
        $message = & load_wechat('Message',config('wechat'));
        $tplData=[
            'touser'=>$openid,
            'template_id'=>'fbzoyRq7WPgvZzkW6MAkruF3cvvx4-3GSrsYvfJvSCY',
            'url'=>$url,
            'data'=>[
                'first'=>['value'=>'你好，您有新的请假申请需审批','color'=>'#333333'],
                'keyword1'=>['value'=>$data['id'],'color'=>'#333333'], //编号
                'keyword2'=>['value'=>$data['driver'],'color'=>'#333333'], //发起人
                'keyword3'=>['value'=>$data['date'],'color'=>'#333333'], //发起时间
                'keyword4'=>['value'=>$data['type'],'color'=>'#333333'], //流程类别
                'remark'=>['value'=>'详情请点击','color'=>'#333333'],
            ]
        ];
        $message->sendTemplateMessage($tplData);
        return true;
    }
}